
import { defineStore } from 'pinia'


export type Tab = {
    title: string;
    path: string;
};

export type TabState = {
    tabList: Tab[];
};

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const tabsStore = defineStore('tabsStore', {
    // other options...
    state: (): TabState => { // 定义属性
        return {
            tabList: [],
        }
    },
    getters: {  // 取值逻辑
        getTab(state) {
            return state.tabList;
        }

    },
    actions: { // 定义操作
        addTab(t: Tab) {
            if (this.tabList.some(item => item.path == t.path)) {
                return;
            }

            if (t.path == '/dashboard') {
                // 如果是首页加到第一个
                this.tabList.unshift(t);
            } else {
                // 如果不包含首页则加首页
                if (!this.tabList.some(item => item.path == '/dashboard')) {
                    this.tabList.unshift({
                        title: '首页',
                        path: '/dashboard'
                    });
                }

                this.tabList.push(t);
            }
        },
    },
})